package Demo2_15;

import java.util.Stack;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User：Lenovo
 * Date:2025-02-15
 * Time:10:42
 */
//给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串 s ，判断字符串是否有效。


//输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
// 例如序列1,2,3,4,5是某栈的压入顺序，序列4,5,3,2,1是该压栈序列对应的一个弹出序列，
// 但4,3,5,1,2就不可能是该压栈序列的弹出序列。
//import java.util.*;
//
//
//public class Solution {
//    /**
//     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
//     *
//     *
//     * @param pushV int整型一维数组
//     * @param popV int整型一维数组
//     * @return bool布尔型
//     */
//    public boolean IsPopOrder (int[] pushV, int[] popV) {
//        // write code here
//        Stack<Integer> stack=new Stack<>();
//        int j=0;
//        for(int i=0;i<pushV.length;i++){
//            stack.push(pushV[i]);
//            while(!stack.isEmpty()&&j<popV.length&&stack.peek()==popV[j]){
//                stack.pop();
//                j++;
//            }
//        }
//        return stack.isEmpty();
//    }
//
//    public static void main(String[] args) {
//        // 创建 Solution 类的实例
//        Solution solution = new Solution();
//
//        // 测试用例 1：合法的弹出序列
//        int[] pushV1 = {1, 2, 3, 4, 5};
//        int[] popV1 = {4, 5, 3, 2, 1};
//        boolean result1 = solution.IsPopOrder(pushV1, popV1);
//        System.out.println("弹出序列 " + Arrays.toString(popV1) + " 对于压入序列 " + Arrays.toString(pushV1) + " 是否合法: " + result1);
//
//        // 测试用例 2：不合法的弹出序列
//        int[] pushV2 = {1, 2, 3, 4, 5};
//        int[] popV2 = {4, 3, 5, 1, 2};
//        boolean result2 = solution.IsPopOrder(pushV2, popV2);
//        System.out.println("弹出序列 " + Arrays.toString(popV2) + " 对于压入序列 " + Arrays.toString(pushV2) + " 是否合法: " + result2);
//    }
//}